package com.waigoulin.domain.order.adapter.repository;


import com.waigoulin.domain.order.model.aggregate.CreateOrderAggregate;
import com.waigoulin.domain.order.model.entity.OrderEntity;
import com.waigoulin.domain.order.model.entity.PayOrderEntity;
import com.waigoulin.domain.order.model.entity.ShopCartEntity;

import java.util.List;

/**
 * @FileName IOrderDaoRepository
 * @Description 订单基础设施（仓储/持久化）层接口
 * @Author waigoulin
 * @date 2025-07-31
 **/
public interface IOrderDaoRepository {

    void doSaveOrder(CreateOrderAggregate createOrderAggregate);

    OrderEntity queryUnPayOrder(ShopCartEntity shopCartEntity);

    void updateOrderPayInfo(PayOrderEntity payOrderEntity);

    void changeOrderPaySuccess(String orderId);

    List<String> queryNoPayNotifyOrder();

    List<String> queryTimeoutCloseOrderList();

    boolean changeOrderClose(String orderId);
}
